package com.yuexunit.finance.member.action.v1.model;

import java.math.BigDecimal;
import java.util.Date;

import com.yuexunit.web.annotation.Parameter;

public class MonthEarningDetailInfo {
	
	@Parameter(name = "monthEarningDetailId", description = "月收益详情ID")
	private Long monthEarningDetailId;

	@Parameter(name = "financeNumber", description = "融资编号")
	private String financeNumber;
	
	@Parameter(name = "financeId", description = "融资ID")
	private Long financeId;
	
	@Parameter(name = "productType", description = "业务类型")
	private Integer productType;
	
	@Parameter(name = "productTypeView", description = "业务类型")
	private String productTypeView;
	
	@Parameter(name = "loanDate", description = "放款时间")
	private Date loanDate;
	
	@Parameter(name = "valuationAmount", description = "计息本金")
	private BigDecimal valuationAmount;

	@Parameter(name = "settlementStart", description = "起息日")
	private Date settlementStart;

	@Parameter(name = "settlementEnd", description = "结息日")
	private Date settlementEnd;
	
	@Parameter(name = "days", description = "计息天数")
	private Integer days;

	@Parameter(name = "interestRate", description = "费率")
	private BigDecimal interestRate;

	@Parameter(name = "payMethod", description = "还款方式")
	private String payMethod;

	@Parameter(name = "shouldPay", description = "本月应还")
	private BigDecimal shouldPay;
	
	@Parameter(name = "paid", description = "本月已收")
	private BigDecimal paid;
	
	@Parameter(name = "enterpriseName", description = "企业名")
	private String enterpriseName;
	
	@Parameter(name = "enterpriseId", description = "企业ID")
	private Long enterpriseId;

	@Parameter(name = "enabled", description = "0-无效;1-有效','是否删除")
	private Boolean enabled;

	@Parameter(name = "createDt", description = "创建时间")
	private Date createDt;

	@Parameter(name = "createDt", description = "更新时间")
	private Date updateDt;
	
	@Parameter(name = "financeState", description = "融资状态")
	private Integer financeState;

	@Parameter(name = "year", description = "年")
	private Integer year;

	@Parameter(name = "month", description = "月")
	private Integer month;
	
	@Parameter(name = "moneyStatementId", description = "收支明细ID")
	private Long moneyStatementId;

	@Parameter(name = "statementNumber", description = "收支单号")
	private String statementNumber;
	
	@Parameter(name = "amount", description = "收支金额")
	private BigDecimal amount;
	
	@Parameter(name = "receiptAmount", description = "已收金额")
	private BigDecimal receiptAmount;
	
	@Parameter(name = "remainAmount", description = "剩余金额")
	private BigDecimal remainAmount;
	
	@Parameter(name = "financeContractSerialNumber", description = "融资合同序列号")
	private String financeContractSerialNumber;

	public BigDecimal getRemainAmount() {
		return amount.subtract(receiptAmount);
	}

	public void setRemainAmount(BigDecimal remainAmount) {
		this.remainAmount = remainAmount;
	}

	public BigDecimal getAmount() {
		return amount;
	}

	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	public BigDecimal getReceiptAmount() {
		return receiptAmount;
	}

	public void setReceiptAmount(BigDecimal receiptAmount) {
		this.receiptAmount = receiptAmount;
	}

	public Long getMoneyStatementId() {
		return moneyStatementId;
	}

	public void setMoneyStatementId(Long moneyStatementId) {
		this.moneyStatementId = moneyStatementId;
	}

	public String getStatementNumber() {
		return statementNumber;
	}

	public void setStatementNumber(String statementNumber) {
		this.statementNumber = statementNumber;
	}

	public Integer getDays() {
		return days;
	}

	public void setDays(Integer days) {
		this.days = days;
	}

	public String getFinanceContractSerialNumber() {
		return financeContractSerialNumber;
	}

	public void setFinanceContractSerialNumber(String financeContractSerialNumber) {
		this.financeContractSerialNumber = financeContractSerialNumber;
	}

	public String getProductTypeView() {
		return productTypeView;
	}

	public void setProductTypeView(String productTypeView) {
		this.productTypeView = productTypeView;
	}

	public Integer getFinanceState() {
		return financeState;
	}

	public void setFinanceState(Integer financeState) {
		this.financeState = financeState;
	}

	public Integer getYear() {
		return year;
	}

	public void setYear(Integer year) {
		this.year = year;
	}

	public Integer getMonth() {
		return month;
	}

	public void setMonth(Integer month) {
		this.month = month;
	}

	public Long getMonthEarningDetailId() {
		return monthEarningDetailId;
	}

	public void setMonthEarningDetailId(Long monthEarningDetailId) {
		this.monthEarningDetailId = monthEarningDetailId;
	}

	public String getFinanceNumber() {
		return financeNumber;
	}

	public void setFinanceNumber(String financeNumber) {
		this.financeNumber = financeNumber;
	}

	public Long getFinanceId() {
		return financeId;
	}

	public void setFinanceId(Long financeId) {
		this.financeId = financeId;
	}

	public Integer getProductType() {
		return productType;
	}

	public void setProductType(Integer productType) {
		this.productType = productType;
	}

	public Date getLoanDate() {
		return loanDate;
	}

	public void setLoanDate(Date loanDate) {
		this.loanDate = loanDate;
	}

	public BigDecimal getValuationAmount() {
		return valuationAmount;
	}

	public void setValuationAmount(BigDecimal valuationAmount) {
		this.valuationAmount = valuationAmount;
	}

	public Date getSettlementStart() {
		return settlementStart;
	}

	public void setSettlementStart(Date settlementStart) {
		this.settlementStart = settlementStart;
	}

	public Date getSettlementEnd() {
		return settlementEnd;
	}

	public void setSettlementEnd(Date settlementEnd) {
		this.settlementEnd = settlementEnd;
	}

	public BigDecimal getInterestRate() {
		return interestRate;
	}

	public void setInterestRate(BigDecimal interestRate) {
		this.interestRate = interestRate;
	}

	public String getPayMethod() {
		return payMethod;
	}

	public void setPayMethod(String payMethod) {
		this.payMethod = payMethod;
	}

	public BigDecimal getShouldPay() {
		return shouldPay;
	}

	public void setShouldPay(BigDecimal shouldPay) {
		this.shouldPay = shouldPay;
	}

	public BigDecimal getPaid() {
		return paid;
	}

	public void setPaid(BigDecimal paid) {
		this.paid = paid;
	}

	public String getEnterpriseName() {
		return enterpriseName;
	}

	public void setEnterpriseName(String enterpriseName) {
		this.enterpriseName = enterpriseName;
	}

	public Long getEnterpriseId() {
		return enterpriseId;
	}

	public void setEnterpriseId(Long enterpriseId) {
		this.enterpriseId = enterpriseId;
	}

	public Boolean getEnabled() {
		return enabled;
	}

	public void setEnabled(Boolean enabled) {
		this.enabled = enabled;
	}

	public Date getCreateDt() {
		return createDt;
	}

	public void setCreateDt(Date createDt) {
		this.createDt = createDt;
	}

	public Date getUpdateDt() {
		return updateDt;
	}

	public void setUpdateDt(Date updateDt) {
		this.updateDt = updateDt;
	}
	
}
